package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.CertificationAgencyCode;
import com.shrcl.engineerprocess.domain.Engineer;
import com.shrcl.engineerprocess.domain.impl.CertificationMaintainerByAgencyImpl;
import com.shrcl.engineerprocess.domain.proxy.CertificationMaintainerByAgencyProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;

@EntityImplementation(implementBy = CertificationMaintainerByAgencyImpl.class)
public interface CertificationMaintainerByAgency extends IModelObject {
  public abstract CertificationAgencyCode getAgency();
  
  public abstract CertificationMaintainerByAgency setAgency(final CertificationAgencyCode agency);
  
  public abstract Engineer getMaintainer();
  
  public abstract CertificationMaintainerByAgency setMaintainer(final Engineer maintainer);
  
  public abstract void checkValid();
  
  public abstract CertificationMaintainerByAgencyProxy toProxy();
}
